import numpy as np

# 排序函数
# sort 修改原数组
arr = np.array([1,4,3,8,1,3,0,-4])
print(arr.sort())
print(arr)
# 这种方式，可以返回新数组，并不修改原数组
print(np.sort(arr))

# 排序，只用索引占位，
arr2 = np.array([5,1,3,8,10,4])
print(arr2.argsort(),'---argsort')  #[1 2 5 0 3 4] ---argsort

# 多形状排序，按最后一列排序，如果最后一列有相同的，则找相同位置倒数第二行进行排列，依次类推如
a = [
    [10,8,6], #120。 0位小于2位，则0排前面，2排后面
    [12,11,12] #102， 0位和2位相同，则去找上一行
    ]
b = np.array(a)
print(np.lexsort(b),'----arss222r')


# 去除
arr3 = np.array([5,1,3,8,2,8,10,5])
print(np.unique(arr3),'---un')

# 两个数组拼接,用加号是两个数组对应位相加，所以只能用这个方法来拼接
r = np.concatenate((arr,arr2))
print(r)

# 分割,第一个参数是数组，第二个是分为几份，几份是元素个数相等的几份，如果不能平均分则报错
print(np.split(arr,2),'---split')
# 也可以写下标去分割
print(np.split(arr,[3,6]),'---split2')

# 数组形状重写， 重写后的行列元素总数必须与原来一致,否则报错
print(np.reshape(arr,(2,4)),'---reshape')